查看原文
其他

机器翻译专场(视频+实录+PPT)| AIS预讲会全程干货分享

读芯术 2019-05-05

“AIS2018(ACL、IJCAI、SIGIR)论文预讲会” 全程干货


2018年6月9-10日,代表学术界和工业界的顶级交流盛会——由中国中文信息学会青年工作委员会和百度公司联合举办的【“AIS2018(ACL、IJCAI、SIGIR)论文预讲会”】在北京盛大举行。预讲会共包括10个专场,芯君将为大家带来全程的内容干货。后台回复AIS,可获得讲者公开PPT


读芯术读者论文交流群,请加小编微信号:zhizhizhuji。等你。



AIS (ACL、IJCAI、SIGIR) 2018

Session 4: Machine Translation


https://v.qq.com/txp/iframe/player.html?vid=z0686j9xv4v&width=500&height=375&auto=0

“机器翻译” 专场全程视频


分享以下分享内容根据讲者口头分享整理,具体内容详见论文。


1 李炎洋 东北大学(该论文第一作者为李炎洋,AIS预讲会现场由王强代替作口头报告)

A Simple and Effective Approach toCoverage-Aware Neural Machine Translation



动机

神经机器翻译(NMT)系统包含两个阶段:训练以及解码。

在训练阶段,我们通常使用极大似然估计(MLE)作为训练目标,使用随机梯度下降方法来学习模型参数θ,这个过程可以描述为:




训练完成后,输入新的源语句子x’,NMT模型能够通过学习到的模型参数来进行解码,生成相应的目标语句子。解码过程实质是一个搜索过程,可以建模为:


其中,是模型打分函数,表示在给定模型参数的条件下,对于输源语x’,生成y’的分数。该值越大,说明x’,y’的互译程度越高。通常,类似训练阶段的目标函数,被简单的定义成每一个词生成概率的对数和,即:



然而,该定义将导致解码器更倾向于选择较短译文,从而造成漏译的问题。究其原因,是因为概率始终是一个负数,因此随着译文长度的增加,累积的模型分数会越来越小,越不容易在众多翻译候选中被选择。 


为了克服这个问题,一种常见的有效做法是在谷歌神经机器翻译(GNMT)中所采用的长度正规化(length normalization)方法[Wu etal., 2016],即通过除以译文长度来使不同长度的译文能够尽量公平的竞争,该过程可以描述为:

其中,是一个常数,例如GNMT中使用;而w是引入的一个超参数,需要在开发集中进行调优。


虽然通过length normalization方法可以消除NMT模型对短句子的偏好,但是该方法本身实际上并无法感知译文内容的覆盖度(coverage-unaware)。举例来说:下图中我们可以看到,使用通过使用length normalization的方法确实可以避免翻译系统对于短句子的过分青睐。在下图中的两个译文里,当不使用length normalization的方法时,根据翻译系统的打分(表中Score列)我们将会选择Target-1中的译文,但该译文显然丢失了大部分的内容未进行翻译,并不是一个好的选择。而当我们使用了length normalization方法后,将有效缓解该问题。length normalization方法的使用将会使得这两个句子中的最终得分在原本打分的基础上根据句长进行调整,当length normalization公式中的d为0,w为1.0的时候,可以简单地理解为直接在原本的分数上除以句长来对打分进行正规化,例子中两个译文将分别在Score的基础上除以它们的句长6和10,得到最终的打分。



但这种解决方案也并不是完美无缺的,我们当使用了length normalization方法后,确实可以选择到一个相对较好的译文结果,但是仔细看这个结果我们会发现源语句子中的“北京站”一词依然被漏翻译了。如下图所示,实际上翻译系统是有能力输出一个相对更准确的译文的(Target-3),但是在选择的过程中,Target-2和Target-3的句长刚好相同,这时由于length normalization的方法仅关注译文的长度,并没有面向译文内容对源语的覆盖度进行建模,因此很难根据相关信息对等长的候选译文进行更准确的筛选,最终导致在使用length normalization对分数进行调整后,Target-2的分数略高一些,选择了不完美的译文进行输出。


一些研究工作已经考虑了译文覆盖度感知的问题,主要有两类方法:

1. 联合学习覆盖度模型和NMT模型

       代表工作: Tuet al., 2016; Mi et al., 2016

       不足:需要重新训练已有的翻译模型;增加模型复杂度,解码时的计算开销较大

2. 设计覆盖度感知的解码特征

       代表工作:Coverage Penalty [Wu et al., 2016]

       不足:该特征只能在最终产生的n-best翻译候选中进行重排序,作用范围有限


方法


Coverage score


针对以上问题,我们提出了一种新的覆盖度感知的解码特征 Coverage Score,该特征的核心思想是将覆盖度感知特征作用到每一个解码时刻,而不是像Coverage Penalty一样只作用在最后阶段。


原则上,我们希望coverage score随着越来越多的源语词被覆盖而变大。基于这个思想,本文提出的coverage score定义如下:



其中,表示当产生第j个目标语时,对源语第i个词的注意力权重/对齐概率。β是新引入的超参数,需要在开发集上调优。下图是计算该特征的一个实例:



性质


本文提出的coverage score有以下特性:

1. 非线性累加

       公式1中,由于每一个源语词的覆盖度都会考虑,因此可以防止系统过于关注个别几个覆盖度高的源语的情况,鼓励每一个词都被尽可能覆盖。除此之外,覆盖度的打分也是对数形式,因此更容易和NMT分数结合。

2. 截断

       如果没有截断参数β, 在解码的早期阶段,大多数的源语词的覆盖度接近0。这将导致其对数值趋近于负无穷,造成解码异常。这也变向于引入对attention分布更均匀的翻译结果的偏好。而通过加入截断参数β,可以看作是一种模型预热机制,能够使模型在前几个时间步的解码更容易。

       另一方面,在GNMTcoverage penalty方法中,覆盖度的值域被限制在[0, 1]之间。这个限制实际上忽略了一个事实:一个源语词可能被翻译成多个目标语词,它的覆盖度应该是一个大于1的值。


结合NMT分数


在解码阶段,我们通过将coverage score和NMT分数线性插值,从而集成到现有的束搜索过程中,最终模型打分函数为:


其中α是另一个被引入的超参数,用来控制NMT分数和覆盖度分数的比例。


实验


实验设置

我们在中-英和英-德两个翻译任务上评价了我们的方法。其中在中-英翻译方向,我们使用了NIST12 OpenMT提供的180万平行语料;英-德方向则使用的是广泛被使用的450万WMT16训练数据。NISTMT06, MT08分别作为中-英任务的开发集和测试集,所有的中文句子使用NiuTrans [Xiao et al., 2012]系统提供的分词工具进行分词。英-德任务中,newstest2013作为开发集,newstest2014作为测试集,使用BPE缓解未登录词问题。所有任务的源语及目标语词汇表大小均为3万。


我们的基线系统使用开源的NMT系统NMT-Tutorial [Luong et al., 2017]。该基线采用4层双向LSTM作为编码器,4层LSTM作为解码器。词向量和隐层维度都是1024。在LSTM的顶层使用additiveattention连接编码器和解码器。对于训练,我们使用Adam优化器,学习率和batchsize被设为0.001和128。


为了方便比较,我们重新实现了length normalization(LN)和coveragepenalty(CP)方法。我们使用gridsearch在开发集上调优所有的超参数。其中CP和CS的超参数选择的区间是[0,1],步长为0.1;而LN的超参数选择的区间是[0.5,1.5]。在早期实验中,我们发现在束大小为10时使用的超参数也能很好的泛化到更大的束上,因此我们在束大小为10的设置下调试所有参数。最终,对于中-英翻译任务,我们使用w=1.0,alpha=0.6, beta=0.4。而在英-德翻译任务上,w=1.5, alpha=0.3, beta=0.2。

结果&分析


表1显示了各个系统在在不同束大小(10,100,500)下BLEU值。首先,我们CS方法超过了所有的基线系统,并且在束大小为500时取得了最好的结果。为了更好的展示,我们绘制了不同方法随着束大小变化时的BLEU值。可以看到我们的方法随着束大小增加,能够稳定的提高性能,表明集成我们的方法能有效在较大搜索空间中剪枝掉“不好”的翻译假设。


除此之外,我们还发现将我们的方法同其他方法结合后BLEU还能进一步提高0.5,说明我们的方法和其他几个方法有互补性。一个有趣的发现是,在英-德任务上的提高小于中-英任务。一个可能的原因是英语和德语之间有相对更好的词汇之间互相对应的关系,词增加或删除的情况并不是那么严重。另一个有趣的现象是,束大小为100时相比于传统采用的束大小(如10),使用CS能够取得一致的性能提高,如中-英方向BLEU提高0.5,英-德方向BLEU提高0.2。但是当进一步将束大小扩大到500时,几乎没有太多的帮助,这说明搜索空间里的较好的翻译假设已经饱和。


我们也比较了直接应用CP在每一个解码时间步中(用表示),以及把CS应用在最后重排序阶段(用表示)。实验结果显示当把CP应用到每一个解码时间步上时,绝大多数的情况都会导致性能大幅下降。而CS却能在重排序阶段不但能起到很好的作用,甚至能通过束搜索中的应用来提高更多的性能,这表明引入覆盖度截断对于应用覆盖度特征到每一个时间步中是极其必要的。



表1 NMT系统的BLEU分数。Base=基线,LN=length normalization,CP=coverage penalty,CS=coverage score


图1 束大小对BLEU的影响

源语句长影响


图2显示了我们的方法在处理长句子时有相对更好的能力。这是符合预期的,因为覆盖度提供了过去丰富的信息,能够帮助缓解长距离依赖的问题。


图2 源语句长对BLEU的影响


译文长度分析


另一个有趣的问题的是是否NMT系统能够产生合适的译文长度。为了研究这个问题,我们列出了机器翻译的译文结果和最短的参考译文的长度。表2显示我们的方法在两个翻译任务上都发挥了作用。这个现象也是合理的,因为我们的方法鼓励选择覆盖度更多的翻译假设,因此导致更高的召回率,这意味着我们的方法能够帮助缓解欠翻译问题。


表2 译文长度统计。Len=平均译文长度;Diff=译文和最短参考译文的平均长度差异;LR=翻译长度比。


超参数敏感度分析


表3显示了两个翻译任务对CS中的两个超参数有不同的最优选择。这可能是由于不同语种间天然的长度特性所导致的。


表3 超参数变化对BLEU的影响(zh-en/en-de)


结论


本文提出了一种新的覆盖度感知的解码特征coverage score,并将其集成到了state-of-the-art的NMT系统中。本文的方法容易实施,并且不需要额外的进行模型训练。同时,我们发现该特征能够在使用很大的束大小时依然表现良好。在中-英和英-德翻译任务上,本文方法能够显著地超过基线系统。


2 邝少辉 苏州大学

AttentionFocusing for Neural Machine Translation by Bridging Source and TargetEmbeddings



从五个方面介绍我的工作。在NMT系统当中,source和target word embeddings位于框架两端,它们中间隔着很长的信息处理通道,在它们之间缺乏一个直接的链接,这可能会导致翻译系统给出一个错误的译文。因此,为了解决这个问题,我们尝试缩短两端词向量的信息通道,增强它们之间的联系,我们提出了三个有效的模型,Source-side bridging model、Target-side bridging model、direct bridging model。


在Source-side bridging model中,我们将词向量拼接到编码器的状态之后,有三部分组成,(前向隐层、反向隐层、以及原端的词向量)。这样做的优势有三点,一是源端的词向量可以参与到attention网络的计算当中,来提升对齐的准确率,二是能够作为源端信息表示的一部分,增强源语句的上下文表达,三是帮助解码器更好的预测目标端的单词。


在SMT系统当中,互为翻译的源端和目标端的单词是以短语、词汇翻译表的形式明确存储下来的。受此启发,我们提出了目标端的桥接模型。我们通过attention网络计算出来的,和当前目标单词最相关的源端的单词,增强解码器的隐层状态的表示,进而提升翻译的质量。   


上面两组方法是通过缩短两端词向量之间的信息通道,缩减它们之间的距离,但是并没有建立直接的链接。我们提出了第三个模型,直接桥接模型。换句话说,我们希望NMT系统学习到源端词向量和目标端词向量是可以相互转换的。也就是说,如果目标端单词和源端单词是对齐的,我们希望学习到一个转换矩阵W使得的差值趋近于0。因此,我们对NMT的训练目标函数进行更新,增加了新的损失函数,我们称之为词向量损失。


从我们的实验结果,可以看出,我们的模型在各个测试集上均优于baseline系统,在BLEU值上提升1.8个点,TER上降低1.7个点。


为了更好地了解单词翻译的质量,我们将译文中单词按其词性(POS)标签进行分组,并检查其对齐到源端单词的词性。表3给出了词性统计的结果。例如,在RNNSearch*中,译文中64.95%的动词来源于源端的动词。在提出的直接桥接模型中,该比例增加到了66.29%。也就是说,直接桥接模型给出的译文中,目标端单词和其对齐的源端单词有更高的比例具有相同的词性。


我们进一步评估了生成译文的词对齐质量。我们在人工标注的词对齐数据集上进行评估,测量了对齐错误率AER和soft AER。数据表明桥接模型显著提高了词对齐质量。这再次证明了桥接模型能够加强源端和目标端词嵌入之间的交互关联。


我们对测试集当中的句子,按照句子长度分类,并计算blue值,在各个句子长度上我们的模型有显著提升。另外,我们发现句子长度超过50的时候,NMT的性能是明显下降的,主要原因有两个:一是训练的时候,我们把训练语料的最大长度设置50,会导致NMT系统不能很好翻译长度超过50的句子;二是对于过长的句子,NMT倾向于更早的停止解码。


停止符“eos”的正确翻译应该能够有效帮助NMT解码器合理判断在何时停止解码。因此,我们进一步分析了模型生成译文的过翻和漏翻情况。为了评估NMT系统的过翻情况,我们统计了过度翻译比率 ROT。从表5中数据可以看出,提出的直接桥接模型缓解了15%的过翻问题,ROT从5.28%降低至4.49%。


对漏翻情况进行准确的评估是十分困难的,因此我们简单地报告了1-gram分数,用于评估NMT生成的译文中多少个单词出现在参考译文中。直接桥接模型比baselien系统有有更好的得分,这也表明我们的模型在一定程度上缓解了漏翻问题。另外,SMT系统获得了最高得分,这是符合预期的,因为SMT系统有很少的情况发生漏翻问题。直接桥接模型中,通过转换矩阵W来缩小原端词向量和目标词向量之间的差异。


在直接桥接模型中,我们引入了转换矩阵W将源端单词转换为对应的目标端单词。也就是说,给定一个源端单词,我们通过下面公式获得它对应的最接近的目标端单词。表7列出了10个出现较频繁的源端单词和它们对应的最相近的目标端单词。可以看出,通过转换矩阵获得的最相近目标端单词和从SMT词汇翻译表获得的目标端单词保持高度一致。也再次印证了我们提出的桥接模型能够有效地捕捉源端和目标端词嵌入之间的对应关系。

 

以上是相关工作涉及的三个,一是attention网络的优化,二是学习更好的单词对集,三是学习跨语言的词向量表示。

 

本文提出了三种方式来桥接NMT源端和目标端的词嵌入。这三种模型通过缩短两端词向量之间的信息通道来增强它们之间的关联。实验表明,提出的桥接模型能够有效地提升翻译质量。进一步的分析表明,提出的模型能够:(1)比baseline系统学习到更好的单词对齐;(2)缓解NMT系统的过翻和漏翻问题;(3)学习源端和目标端词嵌入之间的直接映射。



3 杨振 中国科学院

Unsupervised Neural Machine Translationwith weight Sharing



众所周知,神经机器翻译模型它的性能严重依赖于大规模高质量的双语料,它获取渠道费时费力,是很巨大的工程。很多研究者开始研究,通过大规模的易获得的单语料来训练神经翻译模型。


无监督神经机器翻译模型,它的主要思想是将同样一个语义的源语言句子和一个目标语言的句子都映射到同样一个向量空间,通过不同语言的解码器,在这种共享的向量空间里面解码出对应的译文,实现了无监督的机器翻译效果。


它的主要技术就是四个模型,我们用一个学习到的双语辞典来初始化我们的模型。所谓inferred bilingual dictionary,就是说我们在大规模的单语料中训练出源语言和目标语言的词向量,然后用开源工具进行对齐,获得对齐后的词向量。


第二,我们要学习强的语言模型,将特定语言的编码器和相应的解码器构造成一个自编码器,通过编码器的训练使模型能学到很强的语言模型信息。


第三,用反翻译的方法将无监督的训练setting转化为有监督的setting。


第四,要编码器编码表示,限制在一个共享的空间里面,因此在训练的时候,会把词向量固定起来。


通过实验我们发现两点不足,第一,完全共享编码器对无监督神经机器翻译模型的性能是一个瓶颈。第二,完全固定化词向量也影响了无监督神经翻译模型的性能。


我们提出权重共享的无监督机器翻译模型。在这两个曲线之间共享的权重,我们共享了高层的几个编码层和底层的几个解码层。这个初衷是我们认为对于不同的语言,它有自己的内部结构和语法特征,我们需要用底层独立的层编码语言特有的特征,我们上层用共享的权重向量映射到一个共享的空间。


我们的baseline是一个最朴素的通过词向量相似性得到一个翻译模型。实验中,我们发现共享层数会对翻译模型的性能产生影响,我们发现在共享一层的时候,性能是最好的。   


我们未来的工作,继续来测试无监督机器翻译模型的性能,找到更好的模型结果,以及我们继续测试半监督机器翻译模型训练的技巧。另外,探索一下如何用单语料里面发现句法、语法的信息,再把它融入到无监督机器翻译模型里面。

张飚 厦门大学

AcceleratingNeural Transformer via an Average Attention Network



去年MT整个领域当中最令人激动的文章应该是transformer的出现。它直接把所有在英德、英法等数据集上的state-of-the-art推进了很多,是目前最先进的一个系统。tranformer非常吸引人,因为它有非常大的优势。首先它使用的是attention,这个机制是完全并行的,所以它的训练非常快。因为以前我们在WMT14英德,450万语料,训练需要一周、半个月,甚至更长时间,但是用transformer系统,如果你使用多张卡,可能一天就结束了。


另外,attention这个机制计算的时候可以考虑整个句子级别的信息,通过给每一词分一个权重,可以捕捉长距离依赖、信息流的流动,所以它性能非常好。


但是它也有劣势,在于它的解码端,目前transformer还是依赖于Beam search的解码方式。Beamsearch的解码方式就无可避免只能一个词一个词生成,原先在训练阶段所享受到的并行化加速优势,在解码的时候基本上不存在了。


因为解码端利用的依然是self-attention,在进行每一个词计算的时候,必须要对前面所有的词进行动态运算,造成解码的时候效率比较低。


这篇工作提出了一个新的模型,不改变训练复杂度,不改变训练的性能,但是可以将它解码的复杂度,从原来的O(n)改变成O(1)。


我们的方法很简单,做了一个基本假设。假设解码的时候,我们不需要动态的Self-attention机制,也就是不需要给前面每个词分配一个不同的权重。相反,我们假设前面每一个词对当前词的预测其权重都是一样的,也就是一个average。


具体的计算是:

第一层最简单是Average Layer

第二层是一个Gating Layer

第三层做了一个layer norm

模型的一个优势在于可以不用原始的实现,而是给它一个简单的mask矩阵,通过mask矩阵可以实现所有的average操作,这样它的训练依然是并行的。在时间复杂度分析上几乎和selfattention是一样的。


关于解码的加速,简单的average运算加上原来的gatinglayer,在你进行真实解码的时候,不需要重复计算,只需要针对下面这个做一个动态的计算,因为前面的结果是平均的,可以直接加起来。


这个是我们整体的结构。我们这个模型最终是用在transformer decoder第一层。


看一下我们的实验结果:

首先,翻译性能。我们的性能和transformer几乎是一致的,基本上没有损失。   

第二个,模型收敛。我们提的这个新的模型也没有干扰收敛。

第三,关于训练和解码的时间问题。我们的训练时间几乎是一样的。而解码,随着beam的增大,我们解码加速非常明显,几乎是原来系统的四倍左右,而且beam越大,加速的优势越明显。


简单总结一下我们的工作,我们提出基于average attention的一个网络,在transformer解码的时候,给它做了一个非常明显的加速,在训练的时候,它的复杂度以及训练的结果几乎没有损失。


我们在WMT17的六种语言对上都做了充分的实验验证我们的模型。有心的同学可以看一下。


赵阳 中科院自动化所

PhraseTable as Recommendation Memory for Neural Machine Translation

 


我们这个工作主要缓解NMT在翻译过程中出现忠实度不高问题。


NMT有一个很明显的缺陷,流畅性很好,但是它的忠实性比较差。从某种角度讲,SMT跟它互补,SMT的通顺度会差很多,但是忠实度比较高。尤其在语料比较少的时候,SMT的忠实度会有一个明显的优势。很多工作结合SMT和NMT,但是短语表作为在SMT里面非常重要的一个信息,还没有被充分利用,因此我们探讨了一下SMT里面的短语表在NMT中的应用。


对于某些低频的短语,NMT会翻译得比较差,比如进口、大幅下滑、贸易顺差,SMT对NMT都有一个比较好的优势。


我们基本的思想是怎么样能够在NMT中把SMT作为一个推荐memory用上。更具体一点的想法,我们找到一些值得推荐的单词,在每一个NMT的解码时刻找到一个值得推荐的单词,增加这些单词的预测概率。


分解为三步,正好对应着回答三个问题。第一,什么样的单词在解码的时刻值得被推荐。第二,如果这个单词值得被推荐,它推荐的强度,它的红利值是多少。第三,怎么样把这个值融合到现有的NMT框架里面,是直接加,还是怎么样。


在介绍方法之前,给出两个很简单的定义。第一,短语前缀。短语是一个字符的串,前缀是前面的那些串,从句子第一个单词开始的串。第二,因为大部分NMT都是从左到右解码的,每个解码时刻都有一个部分翻译结果,我们定义一个部分翻译结果的后缀,结束都是以最后一个单词为结束的。


第一步,找出值得推荐的word集,又分两个小步,第一,找出一个侯选的目标短语集,因为从SMT里面抽出来的短语是非常多的,但是与一个测试句相关的只有一点,这一步很简单,从整个短语表里面抽出与测试句子相关的,叫做侯选的短语对。第二步,根据得到候选的短语对,匹配得到值得推荐的单词。


第二步,推荐强度有多少。假设一个单词表述为这样一个形式,第一,值得推荐的单词是哪个短语对推荐来的,第二,它俩之间的翻译概率。单词可能来自不同的短语对,它们都推荐一个单词,把这个累加起来有两个因素决定。第一个因素是对齐的信息,如果NMT正要翻译某个短语对,这个短语对推荐出来的单词,它的推荐强度高一点。第二个因素是翻译概率,翻译概率越高,推荐强度就越高。


第三步,Bonusvalue融合到NMT里面,当然最简单的方式是加,我们尝试很多种方式,这种方式现在是最好的,原始的SMT的等分上按比例加。

总结起来,我认为这个方法,利用短语信息,使得NMT在解码的过程中不至于那么庞大的解码空间里面,用短语信息给NMT解码的时候一点线索、一点奖励吧。


这就是我要汇报的内容,谢谢大家。


留言 点赞 发个朋友圈

我们一起探讨AI落地的最后一公里


推荐文章阅读

ACL2017 论文集:34篇解读干货全在这里


长按识别二维码可添加关注

读芯君爱你


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存